package 元素幂集;

public class 元素幂集 {

    //递归遍历，检查所有元素，t表示要检查的元素的下标
    public static void set_t(int a[],int res[],int t,int len){
        if(t==len){
            int i;
            System.out.printf("{ ");
            for(i=0;i<len-1;i++){
                if(res[i]==1)
                    System.out.printf("%d ",a[i]);
            }

            if(res[i]==1){
                System.out.printf("%d }\n",a[i]);
            }else{
                System.out.printf(" }\n");
            }
        }else{
            res[t] = 1;     //加入此子集
            set_t(a,res,t+1,len);
            res[t] = 0;    //不加入此子集
            set_t(a,res,t+1,len);
        }
    }

    public static void power_set(int a[],int len){
        int[] res = new int[len];
        set_t(a,res,0,len);

    }


    public static void main(String[] args) {
        int a[] = {1,2,2,3,4};
        power_set(a,5);


    }


}
